Object-Oriented Programming Versus Abstract Data Types
نویسنده
چکیده
This tutorial collects and elaborates arguments for distinguishing between object-oriented programming and abstract data types. The basic distinction is that object-oriented programming achieves data abstraction by the use of procedural abstraction, while abstract data types depend upon type abstraction. Object-oriented programming and abstract data types can also be viewed as complimentary implementation techniques: objects are centered around the constructors of a data abstraction, while abstract data types are organized around the operations. These differences have consequences relating to extensibility, efficiency, typing, and verification; in many cases the strengths of one paradigm are the weaknesses of the other. Most object-oriented programming languages support aspects of both techniques, not a unification of them, so an understanding of their relative merits is useful in designing programs. Published in the Proceedings of the REX Workshop/School on the Foundations of Object-Oriented Languages, LNCS 173, Springer-Verlag, 1990, pp. 151-178.
منابع مشابه
Objects Versus Abstract Data Types: Bialgebraically
Algebraic data types and catamorphisms (generic folds) play a central role in functional programming as they allow programmers to define recursive tree-like data structures and operations on them uniformly by structural recursion. Likewise, in object-oriented programming recursive hierarchies of objects play a central role for the same reason, although the execution is quite different. There is...
متن کاملAn Object-Oriented Environment for OIS Applications
Object-oriented programming environments are increasingly needed for programming OIS applications. A prototype object-oriented language has been implemented, and we are refining the language and its implementation. The environment integrates a number of database and operating system concepts, in particular, abstract data types, database constraints, atomic transactions, data persistency, trigge...
متن کاملSubtyping for mutable types in object-oriented programming languages
Subtype relationships in object-oriented programming languages are studied to aid code reuse and reasoning about programs that use subtype polymorphism. We de ne what it means for one abstract data type to be a subtype of another. This de nition allows for both mutation and aliasing. This work gives intuition for programmers and guidance to language designers.
متن کاملConstraining Polymorphism in Statically Typed Object-Oriented Languages
A major attraction of object-oriented programming languages is the promise of increased code reuse, especially through large class libraries implementing common abstract data types and algorithms. Unfortunately, the type systems of most widely used, statically typed object-oriented languages are unable to express the kinds of constrained polymorphism required to support the construction of such...
متن کاملAlgebras for Object-oriented Query Languages
ion is a common feature in many object-oriented models, and AQUA is no exception. Every type is essentially an abstract data type -however, the base types and all types built using the usual type constructors have a fixed set of standard operations available on them (e.g. join and union for sets). As mentioned in [Care88b] and [Rowe87], it is often desirable to be able to add other methods to s...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1990